package com.tongzhan.base;

import java.io.Serializable;
import java.util.List;

/**
 * 分页查询封装类
 * 
 * @author wangcl
 *
 * @param <T>
 */
public class QueryResult<T> implements Serializable {

	private static final long serialVersionUID = 1L;
	private List<T> dataList;
	private long total;

	public QueryResult() {

	}

	public QueryResult(List<T> dataList, long total) {
		this.dataList = dataList;
		this.total = total;
	}

	public List<T> getDataList() {
		return dataList;
	}

	public void setDataList(List<T> dataList) {
		this.dataList = dataList;
	}

	public long getTotal() {
		return total;
	}

	public void setTotal(long total) {
		this.total = total;
	}

	@Override
	public String toString() {
		return "QueryResult [dataList=" + dataList + ", total=" + total + "]";
	}

	/**
	 * 检查page 是否满足条件
	 * @param page
	 * @param def
	 * @return
	 */
	public static final Integer checkPage(Integer page, Integer def) {
		return (page == null || page < 1 )? def : page;
	}
	
	/**
	 * 检查pagesize是否满足条件 
	 * @param pagesize
	 * @param def
	 * @return 
	 */
	public static final Integer checkPageSize(Integer pagesize,Integer def)
	{
		return  (pagesize == null ||pagesize<1)? def : pagesize;
	}	
	/**
	 * 计算分页的开始。没有返回null
	 * @param page
	 * @param pagesize
	 * @return
	   2018年8月1日
	   zhh
	 */
	public static final Integer getStart(Integer page,Integer pagesize)
	{
		return  (page == null &&pagesize==null)? null : (page - 1) * pagesize + 1;
	}
	/**
	 * 计算分页的开始。没有返回null
	 * @param page
	 * @param pagesize
	 * @return
	   2018年8月1日
	   zhh
	 */
	public static final Integer getEnd(Integer start,Integer pagesize)
	{
		return  (start == null &&pagesize==null)? null : ( start + pagesize - 1);
	}
	
}
